As is known in the art, large host computers and servers (collectively referred to herein as “host computer/servers”) require large capacity data storage systems. These large computer/servers generally includes data processors, which perform many operations on data introduced to the host computer/server through peripherals including the data storage system. The results of these operations are output to peripherals, including the storage system.
One type of data storage system is a magnetic disk storage system. Here a bank of disk drives and the host computer/server are coupled together through an interface. The interface includes “front end” or host computer/server controllers (or directors) and “back-end” or disk controllers (or directors). The interface operates the controllers (or directors) in such a way that they are transparent to the host computer/server. That is, data is stored in, and retrieved from, the bank of disk drives in such a way that the host computer/server merely thinks it is operating with its own local disk drive. One such system is described in U.S. Pat. No. 5,206,939, entitled “System and Method for Disk Mapping and Data Retrieval”, inventors Moshe Yanai, Natan Vishlitzky, Bruno Alterescu and Daniel Castel, issued Apr. 27, 1993, and assigned to the same assignee as the present invention.
As described in such U.S. patent, the interface may also include, in addition to the host computer/server controllers (or directors) and disk controllers (or directors), addressable cache memories. The cache memory is a semiconductor memory and is provided to rapidly store data from the host computer/server before storage in the disk drives, and, on the other hand, store data from the disk drives prior to being sent to the host computer/server. The cache memory being a semiconductor memory, as distinguished from a magnetic memory as in the case of the disk drives, is much faster than the disk drives in reading and writing data.
As is also known in the art, in one such system the director issues commands to the memory across a serial line on a backplane. Such system is described in U.S. patent application Ser. No. 09/540,828, filed Mar. 31, 2000, entitled “Data Storage System Having Separate Data Transfer Section And Message Network”, inventors Yuval Ofek et al., assigned to the same assignee as the present invention, the entire subject matter thereof being incorporated herein by reference. In such system, the directors are disposed on director printed circuit boards and the memory is made up of a plurality of memory arrays disposed on a plurality of memory printed circuit boards. The director boards and the memory printed circuit boards plug into a common printed circuit board backplane. The electrical interconnections between the director boards and the memory boards are made by serial busses formed on the backplane.
In such system, when data is transmitted from a director to the memory via the backplane, any data corruption in such transfer from a single bit error is detected by the memory. The detected error is reported to software in such director. The software stops the current data transfer, reset all status and control registers on the director, and then retries the entire data transfer. Each data transfer is broken up into packets of data no larger than 8, 64 bit words of data to be written or read from the memory.
As is also known in the art, it is frequently desired to perform certain types of operations using logic on the memory printed circuit board. One such operation is referred to as read-modify-write operation. More particularly, multi-bit data is read from a particular location in the memory, modified with the logic on the memory board, and then the modified data is written back into the same memory location from which it was originally read.
More particularly, in transferring data to the memory for performance of such read-modify-write operation, the director appends a read-modify-write command to the data and the data and the appended command are sent to the memory. The memory detects the read-modify-write command and uses logic internal to the memory to perform such read-modify-write command.